package com.iwhalecloud.bss.kite.cucc.client.api.pay;

import com.iwhalecloud.bss.kite.cucc.client.dto.order.OrderInfo;
import com.iwhalecloud.bss.kite.cucc.client.dto.pay.PayContentRspDTO;
import com.iwhalecloud.bss.kite.cucc.client.dto.pay.PayInfoConfirmDTO;
import com.iwhalecloud.bss.kite.cucc.client.dto.pay.PayStatusRspDTO;
import com.iwhalecloud.bss.kite.cucc.client.dto.pay.ResaleOrderRequest;
import com.iwhalecloud.bss.kite.cucc.client.dto.pos.KitePosDTO;

import java.util.List;
import java.util.Map;

/**
 * 支付接口
 */
public interface IPaymentService {
    /** 支付下单 */
    PayContentRspDTO payOrder(OrderInfo orderInfo);

    /** 支付结果查询*/
    PayStatusRspDTO qryPayStatus(String outOrderId);

    /** 缴费信息确认*/
    PayInfoConfirmDTO payInfoConfirm(String orderId);

    /** 是否开具发票*/
    boolean isIssueInvoice(String serialNumber, String feeInstanceId);

    /** 趸交返销校验*/
    void resaleCheck(ResaleOrderRequest resaleOrderRequest, KitePosDTO orderKitePosDTO, KitePosDTO userKitePosDTO);

    /**
     * 根据业务号码，资费实例id，获取添加该资费的订单id
     * @author zhang.song
     * @date 2022-03-28 18:57
     * @param serialNumber
     * @param feeInstanceIds
     * @return java.util.List<java.util.Map<java.lang.String,java.lang.String>>
     */
    List<Map<String, String>> getFeeAddOrderId(String serialNumber, List<String> feeInstanceIds);
}
